import imp,os
'''
Deze klasse staat in voor het vinden en klaarmaken van de plugins. In de
main-klasse zal de loadPlugins dan deze uitvoeren.
'''
PluginFolder = "./Plugins"
MainModule = "__init__"

def getPlugins():
    '''
    Deze functie zal de folder ./Plugins uitlezen en kijken welke plugins er inzitten en welke van deze een __init__.py hebben. Anders zal die plugin niet worden ingeladen. Hij zal hiervan een lijst teruggeven met de naam en info rondom deze plugin.
    '''
    plugins = []
    possibleplugins = os.listdir(PluginFolder)
    for i in possibleplugins:
        location = os.path.join(PluginFolder, i)
        if not os.path.isdir(location) or not MainModule + ".py" in os.listdir(location):
            continue
        info = imp.find_module(MainModule, [location])
        plugins.append({"name": i, "info": info})
    return plugins
	    
def loadPlugin(plugin):
    '''
    Deze zal de plugin inladen, daarna kan de loadPlugins in main de run uitvoeren.
    '''
    return imp.load_module(MainModule, *plugin["info"])